﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DynamicAuditor.DTOs;
using DynamicAuditor.WsMantenimientos;

namespace DynamicAuditor
{
    public partial class WebForm7 : System.Web.UI.Page
    {
        /// <summary>
        /// Declaracion de variables publicas para utilizar en esta pagina.
        /// </summary>
        WsMantenimientos.dtoCliente cliente = new WsMantenimientos.dtoCliente();
        WsSeguridad.dtoUsuario usrconectado = new WsSeguridad.dtoUsuario();
        WsMantenimientos.WsMantenimientos seguridad = new WsMantenimientos.WsMantenimientos();

       
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Convert.ToBoolean(Session["CrearUsuario"]) == true)
                {
                    Limpiar();
                }
                else
                {
                   Buscar_Cliente();
                }
            }
        }

      
  
        /// <summary>
        /// Metodo para volver a la lista de usuarios
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Buscar_Cliente()
        {
            int _idusuario = Convert.ToInt16(Session["idCliente"]);
            DynamicAuditor.WsMantenimientos.dtoCliente cliente = new DynamicAuditor.WsMantenimientos.dtoCliente();
            DynamicAuditor.WsMantenimientos.WsMantenimientos seguridad = new DynamicAuditor.WsMantenimientos.WsMantenimientos();
            cliente = seguridad.ObtenerClientexId(_idusuario);

            if (Convert.ToBoolean(cliente.Activo) == true)
            {
                chkactivo.Checked = true;
            }
            else
            {
                chkactivo.Checked = false;
            }
            this.txtCodigo.Text  = cliente.CodCliente;
            this.txtNombre.Text = cliente.Nombre;
            this.txtDescripcion.Text = cliente.Descripcion;
            this.txtContacto.Text = cliente.Contacto;
            this.txtTelefono.Text = cliente.Telefono;
            this.txtCorreo.Text= cliente.Email;
                        

        }

        protected void Cancelar(object sender, EventArgs e)
        {
            Response.Redirect("MantCliente.aspx");
        }

         /// <summary>
        /// Metodo para limpiar la pantalla
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Limpiar()
        {          
            this.txtCodigo.Text = "";
            this.txtNombre.Text = "";
            this.txtDescripcion.Text = "";
            this.txtContacto.Text = "";
            this.txtCorreo.Text = "";
            this.txtTelefono.Text = "";
        }
        /// <summary>
        /// Metodo para la creacion de clientes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Salvar(object sender, EventArgs e)
        {
            int resp = 0;
            usrconectado = (DynamicAuditor.WsSeguridad.dtoUsuario)Session["Usuario"];
            cliente.Activo = this.chkactivo.Checked;
           // usuario.Cedula = mskCedula.Text;
            if (usrconectado == null)
            {
                cliente.ModificadoPor = 0;
            }
            else
            {
                cliente.ModificadoPor = usrconectado.idUsuario;
            }


            cliente.CodCliente = txtCodigo.Text;
            cliente.Nombre = txtNombre.Text;
            cliente.Descripcion = txtDescripcion.Text;
            cliente.Contacto = txtContacto.Text;
            cliente.Email = txtCorreo.Text;
            cliente.Telefono = txtTelefono.Text;
            

            try
            {
                if (Convert.ToBoolean(Session["CrearUsuario"]) == true)
                {
                    cliente.FechaModificacion = DateTime.Now;
                    cliente.FechaCreacion = DateTime.Now;
                    resp = seguridad.CrearCliente(cliente);
                    WebMsgBox.Show("El cliente fue creado correctamente.");
                    Limpiar();
                }
                else
                {
                    int _idusuario = Convert.ToInt16(Session["idCliente"]);
                    cliente.idCliente = _idusuario;
                    cliente.FechaModificacion = DateTime.Now;
                    resp = seguridad.UpdateCliente(cliente);
                    WebMsgBox.Show("La informacion fue actualizada satisfactoriamente.");
                    Response.Redirect("MantClientes.aspx");
                }
            }
            catch (Exception ex)
            {
                WebMsgBox.Show("Ocurrió un error al actualizar la información del cliente." + ex.Message);
            }

        }
    }
}

